home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / python-support / python-rdflib / rdflib / sparql / bison / Expression.py < prev    next >
Encoding:
Python Source  |  2007-04-04  |  2.8 KB  |  84 lines

  1. from Util import ListRedirect
  2.  
  3. class ParsedConditionalAndExpressionList(ListRedirect):
  4.     """
  5.     A list of ConditionalAndExpressions, joined by '||'
  6.     """
  7.     pyBooleanOperator = ' or '
  8.     def __init__(self,conditionalAndExprList):
  9.         if isinstance(conditionalAndExprList,list):
  10.             self._list = conditionalAndExprList
  11.         else:
  12.             self._list = [conditionalAndExprList]
  13.  
  14.     def __repr__(self):
  15.         return "<ConditionalExpressionList: %s>"%self._list
  16.  
  17. class ParsedRelationalExpressionList(ListRedirect):
  18.     """
  19.     A list of RelationalExpressions, joined by '&&'s
  20.     """
  21.     pyBooleanOperator = ' and '
  22.     def __init__(self,relationalExprList):        
  23.         if isinstance(relationalExprList,list):
  24.             self._list = relationalExprList
  25.         else:
  26.             self._list = [relationalExprList]
  27.     def __repr__(self):
  28.         return "<RelationalExpressionList: %s>"%self._list
  29.  
  30. class ParsedPrefixedMultiplicativeExpressionList(ListRedirect):
  31.     """
  32.     A ParsedMultiplicativeExpressionList lead by a '+' or '-'
  33.     """
  34.     def __init__(self,prefix,mulExprList):
  35.         self.prefix = prefix
  36.         assert prefix != '-',"arithmetic '-' operator not supported"
  37.         if isinstance(mulExprList,list):
  38.             self._list = mulExprList
  39.         else:
  40.             self._list = [mulExprList]
  41.     def __repr__(self):
  42.         return "%s %s"%(self.prefix,self.reduce())
  43.  
  44. class ParsedMultiplicativeExpressionList(ListRedirect):
  45.     """
  46.     A list of UnaryExpressions, joined by '/' or '*' s
  47.     """
  48.     def __init__(self,unaryExprList):
  49.         if isinstance(unaryExprList,list):
  50.             self._list = unaryExprList
  51.         else:
  52.             self._list = [unaryExprList]
  53.     def __repr__(self):
  54.         return "<MultiplicativeExpressionList: %s>"%self.reduce()
  55.  
  56. class ParsedAdditiveExpressionList(ListRedirect):
  57.     """
  58.     A list of MultiplicativeExpressions, joined by '+' or '-' s
  59.     """
  60.     def __init__(self,multiplicativeExprList):
  61.         if isinstance(multiplicativeExprList,list):
  62.             self._list = multiplicativeExprList
  63.         else:
  64.             self._list = [multiplicativeExprList]
  65.     def __repr__(self):
  66.         return "<AdditiveExpressionList: %s>"%self._list
  67.  
  68. class ParsedString(unicode):
  69.     def __init__(self,value=None):
  70.         val = value is None and u"" or value
  71.         super(ParsedString,self).__init__(val)
  72.  
  73. class ParsedDatatypedLiteral(object):
  74.     """
  75.     Placeholder for Datatyped literals
  76.     This is neccessary (instead of instanciating Literals directly)
  77.     when datatypes IRIRefs are QNames (in which case the prefix needs to be resolved at some point)
  78.     """
  79.     def __init__(self,value,dType):
  80.         self.value = value
  81.         self.dataType = dType
  82.  
  83.     def __repr__(self):
  84.         return "'%s'^^%s"%(self.value,self.dataType)